from django.core.management.base import BaseCommand
from django.db import transaction
from django.utils import timezone
import datetime
import random
from admin.models import Teacher, College, TeachingStyle, TrainingRecommendation, CollaborationRecommendation, ResourceRecommendation, Resource
import json

class Command(BaseCommand):
    help = '向数据库中插入教师发展系统所需的测试数据'

    def handle(self, *args, **kwargs):
        self.stdout.write('开始创建测试数据...')
        
        # 创建学院数据
        self.create_colleges()
        
        # 创建教师数据
        self.create_teachers()
        
        # 创建教师风格分析数据
        self.create_teaching_styles()
        
        # 创建培训推荐数据
        self.create_training_recommendations()
        
        # 创建协作推荐数据
        self.create_collaboration_recommendations()
        
        # 创建资源和资源推荐数据 - 暂时注释掉，因为有字段不匹配问题
        # self.create_resources_and_recommendations()
        
        self.stdout.write(self.style.SUCCESS('所有测试数据创建完成!'))
    
    def create_colleges(self):
        self.stdout.write('创建学院数据...')
        colleges = [
            {'id': 1, 'name': '计算机科学与技术学院'},
            {'id': 2, 'name': '经济与金融学院'},
            {'id': 3, 'name': '工学院'},
            {'id': 4, 'name': '理学院'},
            {'id': 5, 'name': '文学院'},
            {'id': 6, 'name': '外国语学院'},
            {'id': 7, 'name': '管理学院'},
            {'id': 8, 'name': '艺术学院'},
            {'id': 9, 'name': '医学院'},
            {'id': 10, 'name': '法学院'}
        ]
        
        for college_data in colleges:
            College.objects.get_or_create(
                id=college_data['id'],
                defaults={'name': college_data['name']}
            )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(colleges)} 个学院'))
    
    def create_teachers(self):
        self.stdout.write('创建教师数据...')
        
        teachers = [
            {
                'teacher_id': 1,
                'user_id': 101,
                'college_id': 1,
                'teacher_name': '张伟',
                'teacher_code': 'T2023001',
                'title': '教授',
                'education': '博士',
                'specialty': '人工智能，深度学习',
                'entry_date': datetime.date(2008, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 2,
                'user_id': 102,
                'college_id': 2,
                'teacher_name': '李明',
                'teacher_code': 'T2023002',
                'title': '副教授',
                'education': '博士',
                'specialty': '宏观经济，金融市场分析',
                'entry_date': datetime.date(2015, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 3,
                'user_id': 103,
                'college_id': 3,
                'teacher_name': '王洋',
                'teacher_code': 'T2023003',
                'title': '讲师',
                'education': '硕士',
                'specialty': '机械设计，材料科学',
                'entry_date': datetime.date(2018, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 4,
                'user_id': 104,
                'college_id': 1,
                'teacher_name': '陈敏',
                'teacher_code': 'T2023004',
                'title': '副教授',
                'education': '博士',
                'specialty': '数据库系统，数据挖掘',
                'entry_date': datetime.date(2012, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 5,
                'user_id': 105,
                'college_id': 4,
                'teacher_name': '刘强',
                'teacher_code': 'T2023005',
                'title': '教授',
                'education': '博士',
                'specialty': '理论物理，量子计算',
                'entry_date': datetime.date(2005, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 6,
                'user_id': 106,
                'college_id': 4,
                'teacher_name': '赵文',
                'teacher_code': 'T2023006',
                'title': '教授',
                'education': '博士',
                'specialty': '应用数学，数据分析',
                'entry_date': datetime.date(2007, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 7,
                'user_id': 107,
                'college_id': 5,
                'teacher_name': '孙婷',
                'teacher_code': 'T2023007',
                'title': '讲师',
                'education': '博士',
                'specialty': '现代文学，文艺批评',
                'entry_date': datetime.date(2017, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 8,
                'user_id': 108,
                'college_id': 6,
                'teacher_name': '杨丽',
                'teacher_code': 'T2023008',
                'title': '副教授',
                'education': '博士',
                'specialty': '英语语言学，跨文化交际',
                'entry_date': datetime.date(2013, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 9,
                'user_id': 109,
                'college_id': 7,
                'teacher_name': '郑晓',
                'teacher_code': 'T2023009',
                'title': '教授',
                'education': '博士',
                'specialty': '企业管理，战略规划',
                'entry_date': datetime.date(2006, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 10,
                'user_id': 110,
                'college_id': 8,
                'teacher_name': '周鑫',
                'teacher_code': 'T2023010',
                'title': '讲师',
                'education': '硕士',
                'specialty': '视觉设计，数字艺术',
                'entry_date': datetime.date(2019, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 11,
                'user_id': 111,
                'college_id': 9,
                'teacher_name': '林琳',
                'teacher_code': 'T2023011',
                'title': '副教授',
                'education': '博士',
                'specialty': '临床医学，公共卫生',
                'entry_date': datetime.date(2014, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 12,
                'user_id': 112,
                'college_id': 10,
                'teacher_name': '吴宇',
                'teacher_code': 'T2023012',
                'title': '副教授',
                'education': '博士',
                'specialty': '民法学，法律实务',
                'entry_date': datetime.date(2015, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 13,
                'user_id': 113,
                'college_id': 1,
                'teacher_name': '黄凯',
                'teacher_code': 'T2023013',
                'title': '教授',
                'education': '博士',
                'specialty': '计算机网络，信息安全',
                'entry_date': datetime.date(2009, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 14,
                'user_id': 114,
                'college_id': 3,
                'teacher_name': '徐军',
                'teacher_code': 'T2023014',
                'title': '教授',
                'education': '博士',
                'specialty': '电气工程，自动化控制',
                'entry_date': datetime.date(2010, 9, 1),
                'status': 1
            },
            {
                'teacher_id': 15,
                'user_id': 115,
                'college_id': 5,
                'teacher_name': '马芳',
                'teacher_code': 'T2023015',
                'title': '副教授',
                'education': '博士',
                'specialty': '古代文学，文化传承',
                'entry_date': datetime.date(2013, 9, 1),
                'status': 1
            }
        ]
        
        with transaction.atomic():
            for teacher_data in teachers:
                teacher, created = Teacher.objects.update_or_create(
                    teacher_id=teacher_data['teacher_id'],
                    defaults={
                        'user_id': teacher_data['user_id'],
                        'college_id': teacher_data['college_id'],
                        'teacher_name': teacher_data['teacher_name'],
                        'teacher_code': teacher_data['teacher_code'],
                        'title': teacher_data['title'],
                        'education': teacher_data['education'],
                        'specialty': teacher_data['specialty'],
                        'entry_date': teacher_data['entry_date'],
                        'status': teacher_data['status']
                    }
                )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(teachers)} 位教师'))
    
    def create_teaching_styles(self):
        self.stdout.write('创建教学风格分析数据...')
        
        styles = [
            {
                'teacher_id': 1,
                'style_data': json.dumps({
                    'theoretical_focus': 91,
                    'practical_focus': 78,
                    'student_interaction': 82,
                    'technology_usage': 84,
                    'innovation': 92
                }),
                'style_summary': '理论教学严谨，逻辑性强，适合开展理论性课程。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 2,
                'style_data': json.dumps({
                    'theoretical_focus': 79,
                    'practical_focus': 81,
                    'student_interaction': 99,
                    'technology_usage': 85,
                    'innovation': 81
                }),
                'style_summary': '互动式教学，善于激发学生兴趣，教学案例丰富，适合实践性课程。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'style_data': json.dumps({
                    'theoretical_focus': 98,
                    'practical_focus': 84,
                    'student_interaction': 94,
                    'technology_usage': 91,
                    'innovation': 83
                }),
                'style_summary': '混合式教学，线上线下结合，教学资源丰富，注重学生实际应用能力。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 4,
                'style_data': json.dumps({
                    'theoretical_focus': 70,
                    'practical_focus': 78,
                    'student_interaction': 79,
                    'technology_usage': 75,
                    'innovation': 90
                }),
                'style_summary': '注重理论与实践结合，善于将复杂概念简化，擅长课堂演示，教学方法多样。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 5,
                'style_data': json.dumps({
                    'theoretical_focus': 92,
                    'practical_focus': 79,
                    'student_interaction': 90,
                    'technology_usage': 71,
                    'innovation': 80
                }),
                'style_summary': '深入浅出的讲解风格，善于引导学生思考，注重学科前沿知识的传授，思维训练为主。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 6,
                'style_data': json.dumps({
                    'theoretical_focus': 95,
                    'practical_focus': 75,
                    'student_interaction': 85,
                    'technology_usage': 70,
                    'innovation': 78
                }),
                'style_summary': '教学严谨，循序渐进，注重基础知识传授与学术素养培养。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 7,
                'style_data': json.dumps({
                    'theoretical_focus': 85,
                    'practical_focus': 80,
                    'student_interaction': 98,
                    'technology_usage': 76,
                    'innovation': 88
                }),
                'style_summary': '人文关怀强，重视学生个性发展，课堂互动频繁，激发学习兴趣。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 8,
                'style_data': json.dumps({
                    'theoretical_focus': 82,
                    'practical_focus': 90,
                    'student_interaction': 94,
                    'technology_usage': 88,
                    'innovation': 85
                }),
                'style_summary': '善于运用多媒体技术辅助教学，课堂氛围活跃，实用性强。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 9,
                'style_data': json.dumps({
                    'theoretical_focus': 87,
                    'practical_focus': 93,
                    'student_interaction': 90,
                    'technology_usage': 84,
                    'innovation': 91
                }),
                'style_summary': '案例教学为主，理论与实践结合紧密，启发式教学效果显著。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 10,
                'style_data': json.dumps({
                    'theoretical_focus': 75,
                    'practical_focus': 95,
                    'student_interaction': 97,
                    'technology_usage': 80,
                    'innovation': 96
                }),
                'style_summary': '创新教学手法，强调学生主动探索与实践，课堂气氛活跃。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 11,
                'style_data': json.dumps({
                    'theoretical_focus': 89,
                    'practical_focus': 87,
                    'student_interaction': 82,
                    'technology_usage': 75,
                    'innovation': 81
                }),
                'style_summary': '严谨的逻辑思维，案例分析深入，注重培养学生分析问题和解决问题的能力。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 12,
                'style_data': json.dumps({
                    'theoretical_focus': 88,
                    'practical_focus': 94,
                    'student_interaction': 78,
                    'technology_usage': 79,
                    'innovation': 83
                }),
                'style_summary': '法学教育重实务，模拟法庭教学丰富，培养学生法律思维与实务技能并重。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 13,
                'style_data': json.dumps({
                    'theoretical_focus': 85,
                    'practical_focus': 92,
                    'student_interaction': 88,
                    'technology_usage': 95,
                    'innovation': 94
                }),
                'style_summary': '前沿技术与理论结合，实践教学丰富，擅长引导学生进行创新实践。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 14,
                'style_data': json.dumps({
                    'theoretical_focus': 90,
                    'practical_focus': 91,
                    'student_interaction': 84,
                    'technology_usage': 86,
                    'innovation': 82
                }),
                'style_summary': '工程实践与理论教学并重，注重学生动手能力培养，项目式教学模式成熟。',
                'analyzed_at': timezone.now()
            },
            {
                'teacher_id': 15,
                'style_data': json.dumps({
                    'theoretical_focus': 93,
                    'practical_focus': 78,
                    'student_interaction': 88,
                    'technology_usage': 75,
                    'innovation': 80
                }),
                'style_summary': '文化传承与创新思维培养兼具，强调学生的人文素养与批判性思维。',
                'analyzed_at': timezone.now()
            }
        ]
        
        with transaction.atomic():
            for style_data in styles:
                TeachingStyle.objects.update_or_create(
                    teacher_id=style_data['teacher_id'],
                    defaults={
                        'style_data': style_data['style_data'],
                        'style_summary': style_data['style_summary'],
                        'analyzed_at': style_data['analyzed_at']
                    }
                )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(styles)} 条教学风格数据'))
    
    def create_training_recommendations(self):
        self.stdout.write('创建培训推荐数据...')
        
        training_data = [
            # 原有教师的培训推荐
            {
                'teacher_id': 1,
                'title': '混合式教学设计与实践',
                'description': '学习如何设计和实施有效的混合式教学模式，整合线上线下资源。',
                'match_score': 95,
                'duration': '20小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 1,
                'title': '学科教学创新方法',
                'description': '介绍当代教育创新理念和实践案例，分组讨论与应用。',
                'match_score': 83,
                'duration': '16小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 2,
                'title': '项目式学习工作坊',
                'description': '帮助教师设计和实施基于项目的学习活动，培养学生的实践能力和创新思维。',
                'match_score': 90,
                'duration': '8小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 2,
                'title': '案例教学法研讨',
                'description': '深入学习案例教学法的理论与实践，提高教学的针对性和实效性。',
                'match_score': 85,
                'duration': '12小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'title': '数字媒体在教学中的应用',
                'description': '探索数字媒体技术在现代教学中的应用，提升教学的互动性和吸引力。',
                'match_score': 92,
                'duration': '10小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'title': '实验教学设计与实施',
                'description': '学习如何设计和组织有效的实验教学活动，提高学生的实践能力。',
                'match_score': 88,
                'duration': '15小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 4,
                'title': '数据可视化教学技巧',
                'description': '学习如何利用数据可视化工具增强教学效果，让复杂概念更易理解。',
                'match_score': 93,
                'duration': '16小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 5,
                'title': '深度思维训练方法',
                'description': '探索培养学生深度思维和批判性思考能力的教学方法。',
                'match_score': 96,
                'duration': '24小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            
            # 为新增教师添加培训推荐
            {
                'teacher_id': 6,
                'title': '科学思维培养教学',
                'description': '探讨如何在数学教学中培养学生的科学思维和逻辑推理能力。',
                'match_score': 92,
                'duration': '18小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 7,
                'title': '文学鉴赏与教学实践',
                'description': '提升文学作品解读与鉴赏能力，丰富教学内容与方法。',
                'match_score': 94,
                'duration': '24小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 8,
                'title': '跨文化交际教学方法',
                'description': '介绍跨文化交际教学的策略和技巧，提高学生的国际视野和交流能力。',
                'match_score': 90,
                'duration': '20小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 9,
                'title': '商业案例开发与教学',
                'description': '学习如何开发有效的商业案例并应用于管理教学。',
                'match_score': 88,
                'duration': '16小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 10,
                'title': '数字艺术创作与教学',
                'description': '探索数字艺术创作的新技术和教学方法。',
                'match_score': 96,
                'duration': '30小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 11,
                'title': '临床教学方法创新',
                'description': '探讨医学临床教学的创新方法和实践案例。',
                'match_score': 87,
                'duration': '16小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 12,
                'title': '法律实务教学技巧',
                'description': '提高法律实务教学的针对性和实效性，培养学生的法律思维和实践能力。',
                'match_score': 91,
                'duration': '20小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 13,
                'title': '网络安全教学实践',
                'description': '学习如何设计和实施网络安全实验，提高学生的安全意识和实践能力。',
                'match_score': 94,
                'duration': '24小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 14,
                'title': '工程教育改革实践',
                'description': '探讨工程教育改革的新思路和实践经验。',
                'match_score': 89,
                'duration': '16小时',
                'is_enrolled': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 15,
                'title': '传统文化教育创新',
                'description': '探索传统文化教育的创新方法和实践路径。',
                'match_score': 93,
                'duration': '20小时',
                'is_enrolled': 1,
                'created_at': timezone.now()
            }
        ]
        
        with transaction.atomic():
            for training in training_data:
                TrainingRecommendation.objects.create(
                    teacher_id=training['teacher_id'],
                    title=training['title'],
                    description=training['description'],
                    match_score=training['match_score'],
                    duration=training['duration'],
                    is_enrolled=training['is_enrolled'],
                    created_at=training['created_at']
                )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(training_data)} 条培训推荐数据'))
    
    def create_collaboration_recommendations(self):
        self.stdout.write('创建协作推荐数据...')
        
        collaboration_data = [
            # 原有协作推荐
            {
                'teacher_id': 1,
                'target_teacher_id': 4,
                'match_score': 92,
                'reason': '研究领域互补，可以合作开发人工智能与数据库结合的课程和研究项目。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 1,
                'target_teacher_id': 5,
                'match_score': 85,
                'reason': '跨学科合作潜力，可以共同研究人工智能在量子计算中的应用。',
                'status': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 2,
                'target_teacher_id': 3,
                'match_score': 78,
                'reason': '可以合作开发跨学科课程，结合经济分析与工程实践。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'target_teacher_id': 5,
                'match_score': 80,
                'reason': '教学方法互补，可以共同开发创新的实验教学模式。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 4,
                'target_teacher_id': 2,
                'match_score': 83,
                'reason': '研究兴趣互补，可以合作开发数据分析在金融市场中的应用课程。',
                'status': 1,
                'created_at': timezone.now()
            },
            
            # 新增协作推荐
            {
                'teacher_id': 6,
                'target_teacher_id': 14,
                'match_score': 90,
                'reason': '可以合作开发数学在工程中的应用课程和教学资源。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 7,
                'target_teacher_id': 15,
                'match_score': 95,
                'reason': '现代文学与古代文学的比较研究，可以共同开发文学发展史课程。',
                'status': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 8,
                'target_teacher_id': 10,
                'match_score': 87,
                'reason': '语言与艺术的结合，可以开发跨文化艺术表达课程。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 9,
                'target_teacher_id': 12,
                'match_score': 86,
                'reason': '商业管理与法律实务的结合，可以共同开发企业法律风险管理课程。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 10,
                'target_teacher_id': 7,
                'match_score': 84,
                'reason': '艺术表达与文学创作的结合，可以开发创意写作与视觉表达课程。',
                'status': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 11,
                'target_teacher_id': 13,
                'match_score': 88,
                'reason': '医学信息安全的研究，可以合作开发医疗数据安全与隐私保护课程。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 12,
                'target_teacher_id': 2,
                'match_score': 89,
                'reason': '经济法律的研究，可以共同开发金融法规与经济政策课程。',
                'status': 1,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 13,
                'target_teacher_id': 1,
                'match_score': 93,
                'reason': '人工智能安全研究，可以合作开发AI安全与隐私保护课程。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 14,
                'target_teacher_id': 3,
                'match_score': 91,
                'reason': '工程领域合作，可以共同开发先进材料与自动化控制课程。',
                'status': 0,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 15,
                'target_teacher_id': 5,
                'match_score': 82,
                'reason': '传统文化与现代科学的交融，可以开发中国传统哲学与现代科学思想课程。',
                'status': 0,
                'created_at': timezone.now()
            }
        ]
        
        with transaction.atomic():
            for collab in collaboration_data:
                CollaborationRecommendation.objects.create(
                    teacher_id=collab['teacher_id'],
                    target_teacher_id=collab['target_teacher_id'],
                    match_score=collab['match_score'],
                    reason=collab['reason'],
                    status=collab['status'],
                    created_at=collab['created_at']
                )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(collaboration_data)} 条协作推荐数据'))
    
    def create_resources_and_recommendations(self):
        self.stdout.write('创建资源和资源推荐数据...')
        
        # 先创建一些资源
        resources = [
            {
                'resource_id': 101,
                'category_id': 1,
                'creator_id': 1,
                'resource_name': '人工智能基础教程',
                'resource_type': 'document',
                'description': '全面介绍人工智能基础概念和应用场景的教程',
                'create_time': timezone.now(),
                'status': 1
            },
            {
                'resource_id': 102,
                'category_id': 2,
                'creator_id': 2,
                'resource_name': '经济学案例集',
                'resource_type': 'document',
                'description': '精选经济学实践案例，适合课堂教学使用',
                'create_time': timezone.now(),
                'status': 1
            },
            {
                'resource_id': 103,
                'category_id': 3,
                'creator_id': 3,
                'resource_name': '材料力学实验视频',
                'resource_type': 'video',
                'description': '详细展示常见材料力学实验的操作步骤和结果分析',
                'create_time': timezone.now(),
                'status': 1
            }
        ]
        
        with transaction.atomic():
            for res in resources:
                Resource.objects.update_or_create(
                    resource_id=res['resource_id'],
                    defaults={
                        'category_id': res['category_id'],
                        'creator_id': res['creator_id'],
                        'resource_name': res['resource_name'],
                        'resource_type': res['resource_type'],
                        'description': res['description'],
                        'create_time': res['create_time'],
                        'status': res['status']
                    }
                )
        
        # 创建资源推荐
        resource_recommendations = [
            {
                'teacher_id': 1,
                'resource_id': 101,
                'external_title': '深度学习实战指南',
                'external_url': 'https://example.com/dl-guide',
                'external_type': 'ebook',
                'category': '专业教材',
                'relevance_score': 95,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 1,
                'resource_id': None,
                'external_title': 'AI教学视频系列',
                'external_url': 'https://example.com/ai-videos',
                'external_type': 'video',
                'category': '教学视频',
                'relevance_score': 90,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 2,
                'resource_id': 102,
                'external_title': None,
                'external_url': None,
                'external_type': None,
                'category': '案例教学',
                'relevance_score': 92,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'resource_id': 103,
                'external_title': None,
                'external_url': None,
                'external_type': None,
                'category': '实验教学',
                'relevance_score': 94,
                'created_at': timezone.now()
            },
            {
                'teacher_id': 3,
                'resource_id': None,
                'external_title': '工程材料课程设计指南',
                'external_url': 'https://example.com/materials-guide',
                'external_type': 'document',
                'category': '课程设计',
                'relevance_score': 88,
                'created_at': timezone.now()
            }
        ]
        
        with transaction.atomic():
            for rec in resource_recommendations:
                ResourceRecommendation.objects.create(
                    teacher_id=rec['teacher_id'],
                    resource_id=rec['resource_id'],
                    external_title=rec['external_title'],
                    external_url=rec['external_url'],
                    external_type=rec['external_type'],
                    category=rec['category'],
                    relevance_score=rec['relevance_score'],
                    created_at=rec['created_at']
                )
        
        self.stdout.write(self.style.SUCCESS(f'成功创建 {len(resources)} 个资源和 {len(resource_recommendations)} 条资源推荐')) 